<?xml version="1.0" encoding="UTF-8"?>
<validateThis xsi:noNamespaceSchemaLocation="http://www.validatevariables.org/validateThis.xsd"
              xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

    <conditions>
        <condition name="isOptOut"
                   serverTest="getOpt_Out() EQ true"/>
    </conditions>
    <objectProperties>
        <!-- Boolean: Missing value equates to false, no need to add required rules -->
        <property name="Deleted">
            <rule type="boolean" contexts="*" />
        </property>
        <property name="Opt_Out">
            <rule type="boolean" contexts="*" />
        </property>
        <!-- Strings -->
        <property name="Institution1_Enrollment_Attendance_Level">
            <rule type="minLength" contexts="*">
                <param name="minLength" value="3" />
            </rule>
        </property>
        <property name="Institution1_Enrollment_Degree_Level">
            <rule type="minLength" contexts="*">
                <param name="minLength" value="3" />
            </rule>
        </property>
        <property name="Institution2_Enrollment_Attendance_Level">
            <rule type="minLength" contexts="*">
                <param name="minLength" value="3" />
            </rule>
        </property>
        <property name="Institution2_Enrollment_Degree_Level">
            <rule type="minLength" contexts="*">
                <param name="minLength" value="3" />
            </rule>
        </property>
        <property name="Institution3_Enrollment_Attendance_Level">
            <rule type="minLength" contexts="*">
                <param name="minLength" value="3" />
            </rule>
        </property>
        <property name="Institution3_Enrollment_Degree_Level">
            <rule type="minLength" contexts="*">
                <param name="minLength" value="3" />
            </rule>
        </property>
        <property name="Payment_Type">
            <rule type="minLength" contexts="*">
                <param name="minLength" value="3" />
            </rule>
        </property>
        <property name="Payment_Reference">
            <rule type="minLength" contexts="*">
                <param name="minLength" value="3" />
            </rule>
        </property>
        <property name="Payment_Reference">
            <rule type="minLength" contexts="*">
                <param name="minLength" value="3" />
            </rule>
        </property>
        <!-- integers -->
        <property name="Payment_ID">
            <rule type="required" contexts="*" />
            <rule type="integer" contexts="*" />
        </property>
        <property name="Scholarship_ID">
            <rule type="required" contexts="*" />
            <rule type="integer" contexts="*" />
            <rule type="min" contexts="*">
                <param name="min" value="1" />
            </rule>
        </property>
        <property name="Payment_Schedule_ID">
            <rule type="required" contexts="*" />
            <rule type="integer" contexts="*" />
            <rule type="min" contexts="*">
                <param name="min" value="1" />
            </rule>
        </property>
        <property name="Institution1_ID">
            <rule type="required" contexts="*" />
            <rule type="integer" contexts="*" />
        </property>
        <property name="Institution2_ID">
            <rule type="required" contexts="*" />
            <rule type="integer" contexts="*" />
        </property>
        <property name="Institution3_ID">
            <rule type="required" contexts="*" />
            <rule type="integer" contexts="*" />
        </property>
        <property name="Institution1_Enrollment_Units">
            <rule type="min" contexts="*">
                <param name="min" value="1" />
            </rule>
        </property>
        <property name="Institution2_Enrollment_Units">
            <rule type="min" contexts="*">
                <param name="min" value="1" />
            </rule>
        </property>
        <property name="Institution3_Enrollment_Units">
            <rule type="min" contexts="*">
                <param name="min" value="1" />
            </rule>
        </property>
        <property name="Institution1_Performance_Credits">
            <rule type="min" contexts="*">
                <param name="min" value="1" />
            </rule>
        </property>
        <property name="Institution2_Performance_Credits">
            <rule type="min" contexts="*">
                <param name="min" value="1" />
            </rule>
        </property>
        <property name="Institution3_Performance_Credits">
            <rule type="min" contexts="*">
                <param name="min" value="1" />
            </rule>
        </property>
        <property name="Payment_Amount">
            <rule type="numeric" contexts="*" />
            <rule type="min" contexts="*">
                <param name="min" value="0" />
            </rule>
        </property>
        <!-- dates -->
        <property name="Institution1_Document_Date">
            <rule type="date" contexts="*" />
        </property>
        <property name="Institution2_Document_Date">
            <rule type="date" contexts="*" />
        </property>
        <property name="Institution3_Document_Date">
            <rule type="date" contexts="*" />
        </property>
        <property name="Approval_Date">
            <rule type="date" contexts="*" />
        </property>
        <property name="Payment_Submitted_Date">
            <rule type="date" contexts="*" />
        </property>
        <property name="Payment_Date">
            <rule type="date" contexts="*" />
        </property>
    </objectProperties>
</validateThis>
